#include<iostream>
using namespace std;
/*
本质：引用的本质在c++内部实现是一个指针常量
指向不可以改变，指向的值可以改变

结论：C++推荐引用技术，因为语法方便，引用本质是指针常量，但是所有的指针操作编译器都帮我们做了
*/
//发现是引用，转换为int * const ref=&a;
void func(int& ref){
    ref=100;//ref是引用，转换为*ref=100
}
int main(){
    int a=10;
    //自动转换为int * const ref=&a;指针常量是指针指向不可改，也说明为什么引用不可更改
    int& ref=a;
    ref=20;//内部发现ref是引用，自动帮我们转换为：*ref=20;
    cout<<"a="<<a<<endl;//20
    cout<<"ref="<<ref<<endl;//20
    func(a);
    cout<<"a="<<a<<endl;//100
    return 0;
}
